Insert Class Reference

List of all members.

Public Member Functions

 __construct ()
 showForm ($file_upload=false, $copyFile=null)
 printSubFolder ($fileID, $sql_add, &$folderArr, $COUNT=0, $layer="··")
 fileSizeOK ($size)
 fileExtOK ($name)
 sendEmail ($fileID, $toTeachers=false)
 resolveForm ($data)

Private Member Functions

 uploadFile ($data)

Private Attributes

 $maxFileSize
 $forbiddenFileExtensions
 $role = null
 $team = null

Detailed Description

Definition at line 54 of file class.insert.inc.php.


Constructor & Destructor Documentation

Insert::__construct (  ) 

Konstruktor. public

Definition at line 84 of file class.insert.inc.php.

References $_SESSION.

00084                                   {
00085         global $settings;
00086         if (is_numeric($settings['filemanager_max_filesize'])) $this->maxFileSize = $settings['filemanager_max_filesize'];
00087         $this->forbiddenFileExtensions = $settings['filemanager_forbidden_extensions'];
00088         if (isset($_SESSION["roleID"])) {
00089             $this->role = new Role($_SESSION["roleID"]);
00090         }
00091         if (isset($_SESSION["teamID"])) {
00092             $this->team = new Team($_SESSION["teamID"]);
00093         }
00094     }


Member Function Documentation

Insert::fileExtOK ( name  ) 

Prüft ob der Dateityp laut Config-File erlaubt ist public

Parameters:
string $name - Dateiname
Returns:
bool - true wenn Dateityp OK

Definition at line 326 of file class.insert.inc.php.

Referenced by resolveForm().

00326                                      {
00327         if ($this->forbiddenFileExtensions) {
00328             $pos = strrpos($name, ".");
00329             if ($pos) {
00330                 $ext = substr($name, $pos+1);
00331                 if (is_array($this->forbiddenFileExtensions)) {
00332                     foreach($this->forbiddenFileExtensions as $value) {
00333                         if (strtolower($ext) == strtolower($value)) return false;
00334                     }
00335                 } elseif (strtolower($ext) == strtolower($this->forbiddenFileExtensions)) return false;
00336             }
00337         }
00338         return true;
00339     }

Insert::fileSizeOK ( size  ) 

Prüft ob die Dateigröße dem Limit im Config-File entspricht public

Parameters:
integer $size - Größe der Datei
Returns:
bool - true wenn Größe OK

Definition at line 313 of file class.insert.inc.php.

Referenced by resolveForm().

00313                                       {
00314         if ($this->maxFileSize) {
00315             if (($size/1000000) > $this->maxFileSize) return false;
00316             if ($size <= 0) return false;
00317         }
00318         return true;
00319     }

Insert::printSubFolder ( fileID,
sql_add,
&$  folderArr,
COUNT = 0,
layer = "&#183;&#183;" 
)

erstellt eine baumstrukur aller Ordner auf die der User Schreibrechte hat und die er sehen darf private

Parameters:
ezsql [$fileID] -
string [$sql_add] - SQL zusatz, ist Usergruppenabhaenigig
array [$folderArr] - Array der Ermittelten Folder, ist ein Zeiger der Uebergeben wird
int [$COUNT] - Ist der Array Zaehler von folderArr
string [$layer] - Sind die zeichen vorm Ordnernamen fuer visualisierung der baumstrukur
Returns:
Anzahl der Elemente im Array

Definition at line 297 of file class.insert.inc.php.

References $_SESSION, and $db.

Referenced by showForm().

00297                                                                                                         {
00298         global $db;
00299         $folders = $db->get_results("SELECT fileID, link, student_write, userID FROM filelist WHERE parent_object='".$fileID."' AND courseID=".$_SESSION['course']."  AND type='folder' $sql_add ORDER BY name");
00300         if ($folders) foreach($folders as $folder) {
00301             $folderArr[$COUNT][0] = $layer." &#8226; ".Data::toHTML($folder->link, false);
00302             $folderArr[$COUNT++][1] = $folder->fileID;
00303             $COUNT = $this->printSubFolder($folder->fileID, $sql_add, $folderArr, $COUNT, $layer."&#183;&#183;");
00304         }
00305         return $COUNT;
00306     }

Insert::resolveForm ( data  ) 

Wertet das Formular aus und traegt die Daten in die Datenbank ein public

Parameters:
array $data - Array mit dem Formulareintraegen
Returns:
bool - Erfolgswert

Definition at line 386 of file class.insert.inc.php.

References $_SESSION, $db, fileExtOK(), fileSizeOK(), sendEmail(), and uploadFile().

00386                                        {
00387         global $db, $EZSQL_ERROR;
00388         echo "<table>";
00389         /************************************ FEHLERUEBERPRUEFUNG BEGIN***********************************************/
00390         if (!in_array($data["type"], array("folder", "link", "file", "ROOT"))) {
00391             $ERROR = "Bitte w&auml;hlen Sie aus, ob Sie einen Link oder einen Ordner erstellen wollen.";
00392             Output::errorMessage($ERROR, 2);
00393             echo "</table>";
00394             return false;
00395         }
00396         if ($data['link'] == "") {
00397                 switch ($data['type']) {
00398                     case 'ROOT':
00399                     case 'folder':
00400                         $ERROR = "Sie haben keinen Ordnernamen angegeben!";
00401                         break;
00402 
00403                     case 'link':
00404                         $ERROR = "Sie haben keinen Link angegeben!";
00405                         break;
00406 
00407                     case 'file':
00408                         $ERROR = "Sie haben keine Datei ausgew&auml;hlt!";
00409                         break;
00410                 }
00411                 Output::errorMessage($ERROR, 2);
00412             }
00413             if ($data['name'] == "") {
00414                 switch ($data['type']) {
00415                     case 'ROOT':
00416                     case 'folder':
00417                         $ERROR = "Sie haben keinen erl&auml;uternden Ordnernamen (Tooltip) angegeben!";
00418                         break;
00419 
00420                     case 'link':
00421                         $ERROR = "Sie haben keinen Namen f&uuml;r den Link angegeben!";
00422                         break;
00423 
00424                     case 'file':
00425                         $ERROR = "Sie haben keinen Namen f&uuml;r die  Datei angegeben!";
00426                         break;
00427                 }
00428                 if (!empty($ERROR)) Output::errorMessage($ERROR, 2);
00429             }
00430             if ($data['parent_object'] == "" && $data['type'] != 'ROOT') {
00431                 $ERROR = "Sie haben keinen Zielordner ausgew&auml;hlt!";
00432                 Output::errorMessage($ERROR, 2);
00433             }
00434             if ($data['type'] == 'link') {
00435                 if (!Utilities::validateURL($data['link'])) {
00436                     $ERROR = "Sie haben eine ung&uuml;ltige URL angegeben!";
00437                     Output::errorMessage($ERROR, 2);
00438                 }
00439                 if (strlen($data['name']) > 40) {
00440                     $ERROR = "Linkname darf h&ouml;chstens 40 Zeichen lang sein.";
00441                     Output::errorMessage($ERROR, 2);
00442                 }
00443             }
00444             if ($data['type'] == 'file') {
00445                 if ($data['orig_filename'] == '' || strlen($data['extension']) > 5 || strlen($data['extension']) < 0) {
00446                     $ERROR = "Keine Datei ausgew&auml;hlt oder Dateiendung ung&uuml;ltig! (L&auml;nge hinter . 1-4)";
00447                     Output::errorMessage($ERROR, 2);
00448                     if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']);
00449                 } elseif (!($this->fileSizeOK($data['size']))) {
00450                     $ERROR = "Datei ist entweder &uuml;ber der zul&auml;ssigen Gr&ouml;&szlig;e, oder sie ist leer!";
00451                     Output::errorMessage($ERROR, 2);
00452                     if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']);
00453                 } elseif (!($this->fileExtOK($data['orig_filename']))) {
00454                     $ERROR = "Dateityp ist nicht erlaubt!";
00455                     Output::errorMessage($ERROR, 2);
00456                     if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']);
00457                 }
00458             }
00459             if ($data['type'] == 'folder') {
00460                 if (strlen($data['link']) > 20) {
00461                     $ERROR = "Ordnername darf h&ouml;chstens 20 Zeichen lang sein.";
00462                     Output::errorMessage($ERROR, 2);
00463                 }
00464             }
00465             // Wenn bis hierher schon ein Fehler festgestellt wurde bricht er ab
00466             if (isset($ERROR)) {
00467                 echo "</table>";
00468                 return false;
00469             }
00470             /************************************ FEHLERUEBERPRUEFUNG ENDE ***********************************************/
00471             switch ($data['type']) {
00472                 case 'ROOT': // Hauptordner anlegen
00473                     $data['type'] = 'folder';
00474                     $data['parent_object'] = 0;
00475                     $type = "von Hauptordner";
00476                     break;
00477 
00478                 case 'folder': // Unterordner anlegen
00479                     $type = "von Ordner";
00480                     break;
00481 
00482                 case 'link':
00483                     $type = "von Link";
00484                     break;
00485 
00486                 case 'file':
00487                     $type = "von Datei";
00488                     break;
00489             }
00490             // Baut die SQL Abfrage anhand des Arrays data auf.
00491             // Alle Felder ohne "tmp" werden als FeldName benutzt und ihr Wert in die DB eingetragen
00492             $SQL_keys = $SQL_values = '';
00493             foreach($data as $key => $value) {
00494                 if (!strstr($key, "tmp")) {
00495                     $SQL_keys.= $key.',';
00496                     $SQL_values.= "'".Data::toMysql($value) ."',";
00497                 }
00498             }
00499             // Ordner existiert schon ??
00500             if ($data['type'] == 'folder' && ($db->get_var("SELECT fileID FROM filelist WHERE parent_object='".$data['parent_object']."' AND courseID =".$data['courseID']." AND link='".$data['link']."' LIMIT 1") != "")) {
00501                 Output::errorMessage("Ein Ordner mit dem selben Namen existiert schon in diesem Ordner.<br/>W&auml;hlen Sie bitte einen anderen Namen.", 2);
00502                 echo "</table>";
00503                 return false;
00504             }
00505             // Selber Link schon in diesem Ordner vorhanden ??
00506             if ($data['type'] == 'link' && $db->get_var("SELECT fileID FROM filelist WHERE parent_object='".$data['parent_object']."' AND courseID=".$_SESSION['course']." AND link='".$data['link']."' LIMIT 1") != "") {
00507                 Output::errorMessage("Ein Link mit dem selben Namen existiert bereits in diesem Ordner!", 2);
00508                 echo "</table>";
00509                 return false;
00510             }
00511             $SQL = "INSERT INTO filelist (".substr($SQL_keys, 0, -1) .") VALUES (".substr($SQL_values, 0, -1) .")"; // SQL Abfrage ohne Endene Kommas
00512             $errorCount = count($EZSQL_ERROR);
00513             $db->query($SQL);
00514             $data['fileID'] = $db->insert_id;
00515             if (count($EZSQL_ERROR) > $errorCount || $data['fileID'] < 0) {
00516                 Output::errorMessage("Fehler beim Anlegen ".$type." in der Datenbank!");
00517                 echo "</table>";
00518                 return false;
00519             } elseif ($data['type'] == 'file') {
00520                 if (!$this->uploadFile($data)) {
00521                     $db->query("DELETE FROM filelist WHERE fileID='${data['fileID']}'");
00522                     $data['fileID'] = "";
00523                     Output::errorMessage("Aktion nicht erfolgreich durchgef&uuml;hrt!", 2);
00524                     echo "</table>";
00525                     return false;
00526                 }
00527             }
00528             if (isset($this->role)) {
00529                 RoleArtefacts::setRoleForItem(RESSOURCE, $data["fileID"], $_SESSION["roleID"]);
00530             }
00531             if (isset($this->team)) {
00532                 TeamArtefacts::setTeamForItem(RESSOURCE, $data["fileID"], $_SESSION["teamID"]);
00533             }
00534             if ($data['fileID'] && $data['visible_type'] != 1 && isset($data['tmpfileVisibleList'])) {
00535                 // Spezielle UserSichtbarkeit in DB eintragen
00536                 $errorCount = count($EZSQL_ERROR);
00537                 foreach($data['tmpfileVisibleList'] as $value) {
00538                     $db->query("INSERT INTO filevisible (fileID,userID) VALUES(".$data['fileID'].",".$value.")");
00539                 }
00540                 if (count($EZSQL_ERROR) > $errorCount) {
00541                     Output::errorMessage("Aktion nicht erfolgreich durchgef&uuml;hrt!", 2);
00542                     echo "</table>";
00543                     return false;
00544                 }
00545             }
00546             if ($data['type'] != 'file') {
00547                 if ($data['tmpemail'] || $data['tmpteacherEMail']) {
00548                     if ($this->sendEmail($data['fileID'], ($data['tmpteacherEMail'] && !$data['tmpemail']))) Output::echoMessage("Benachrichtigungs-Mails versandt.", 2);
00549                     else Output::errorMessage("Benachrichtigungs-Mails konnten nicht versandt werden!", 2);
00550                 }
00551             }
00552             Output::echoMessage("Aktion wurde erfolgreich durchgef&uuml;hrt!", 2);
00553             echo "</table>";
00554             unset($_POST);
00555             if ($data['type'] == 'file') {
00556                 // hochgeladene Datei indizieren
00557                 $spider = new Spider();
00558                 $spider->start("add-file", $data['fileID']);
00559             }
00560             return $data["fileID"];
00561         }

Insert::sendEmail ( fileID,
toTeachers = false 
)

Versendet die Benachrichtigungsmail für eine neue hochgeladene Datei. public

Parameters:
integer $fileID - die ID der hochgeladenen Datei
bool $toTeachers - ob die Emails nur an Dozenten geschickt werden sollen
Returns:
bool

Definition at line 347 of file class.insert.inc.php.

References $_SESSION, and $db.

Referenced by resolveForm(), and uploadFile().

00347                                                             {
00348         global $db, $settings;
00349         if (!is_numeric($fileID)) return false;
00350         $file = $db->get_row("SELECT * FROM filelist WHERE fileID='$fileID'");
00351         if ($file) {
00352             $email = new Email($_SESSION['userid']);
00353             if ($toTeachers) {
00354                 if ($file->courseID == 0) {
00355                     $query = "SELECT ID FROM user WHERE Usergroup=3";
00356                 } else {
00357                     $query = "SELECT ID
00358                           FROM user JOIN user_course ON ID=userID
00359                           WHERE courseID='".$file->courseID."' AND
00360                                 ((differentUsergroup=0 AND Usergroup=3) OR differentUsergroup=3)";
00361                 }
00362             } else {
00363                 if ($file->courseID == 0) {
00364                     $query = "SELECT ID FROM user WHERE Invisible=0";
00365                 } else {
00366                     $query = "SELECT userID FROM user_course WHERE courseID ='".$file->courseID."'";
00367                 }
00368             }
00369             $users = $db->get_col($query);
00370             if ($file->courseID > 0) {
00371                 $courseName = $db->get_var("SELECT Name FROM courses WHERE ID='".$file->courseID."'");
00372             }
00373             $user = $db->get_row("SELECT Vorname, Nachname FROM user WHERE ID='".$file->userID."'");
00374             $subject = $settings["label"].": Neue Ressource im ".(empty($courseName) ? "Foyer" : "Kurs \"$courseName\"");
00375             $message = "Guten Tag,\n\n".$user->Vorname." ".$user->Nachname." hat ".($file->type == "link" ? "einen neuen Link" : ($file->type == "file" ? "eine neue Datei" : "einen neuen Ordner")) ." mit der Bezeichnung\n\n\t".$file->name.(empty($file->description) ? "" : "\n\n\t".$file->description) ."\n\nim ".(empty($courseName) ? "Foyer" : "Kurs \"$courseName\"") ." bereitgestellt".($file->type == "link" ? ":\n\n\t<".$file->link.">" : ".") ."\n\nViele Grüße,\n\nIhr Kursdozent";
00376             return $email->sendMessageToUser($subject, $users, $message);
00377         }
00378         return false;
00379     }

Insert::showForm ( file_upload = false,
copyFile = null 
)

Generiert Formular für Insert public

Returns:
void

Definition at line 100 of file class.insert.inc.php.

References $_SESSION, $db, and printSubFolder().

00100                                                                      {
00101         global $db, $EZSQL_ERROR;
00102         // Initialisierung
00103         $MaxFileSize = $this->maxFileSize;
00104         $ForbiddenFileExtensions = $this->forbiddenFileExtensions;
00105         $time = time();
00106         $sql_add = "";
00107         $heute = getdate();
00108         $course = $_SESSION['course'];
00109         $form = new Formular();
00110         // INITIALISIERUNG von Kalender Anzeige
00111         // DateSelection Objekt erzeugen und das heutige (start-) Datum einstellen
00112         $calendar = new DateSelection($heute['mday'], $heute['mon'], $heute['year'], $heute['hours'], $heute['minutes']);
00113         //Javascript deaktivieren
00114         $calendar->autoUpdate = false;
00115         //Name des Formulars einstellen
00116         $calendar->formName = "insert";
00117         //Die Ausgabestrings löschen (keine Bezeichner vor den Auswahlfeldern)
00118         $calendar->clearStrings();
00119         
00120         // URL ins Feld einfügen und Radio Button vorselektieren, sofern übergeben
00121         if(isset($_GET['url'])) {
00122             $actionChecked = 'link';
00123             $linkUrl = $_GET['url'];
00124         }            
00125         else {
00126             $linkUrl = '';
00127             $actionChecked = '';
00128         } 
00129 
00130         // Link Name ins Feld einfügen, sofern übergeben
00131         if(isset($_GET['name']))
00132             $linkName = $_GET['name'];
00133         else
00134             $linkName = '';                        
00135         
00136         // BEGIN von Formular erstellen
00137         // Init
00138         $form->setFormHead("insert", "", "post", "multipart/form-data", "onsubmit=\"".(!$file_upload ? "if (document.getElementById('link_ID').checked == false &amp;&amp; document.getElementById('folder_ID').checked == false".(($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) ? " &amp;&amp; document.getElementById('ROOT_ID').checked == false" : "") .") { alert('Bitte w&auml;hlen Sie, ob Sie einen Link oder Ordner erstellen wollen!'); return false; } ":
00139             "") ."if (document.getElementById('folder').value == ''".(!$file_upload && (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) ? " &amp;&amp; document.getElementById('ROOT_ID').checked == false" : "") .") { alert('Bitte w&auml;hlen Sie einen Zielordner!'); return false; }\"");
00140         $form->setTemplate("<table width='100%'>", "<tr valign='top'><td class='tableCell' width='50%'>", "<td class='tableCell' width='50%'>"); // Setzt die UmgebungsTags
00141         $form->setButtons(1, "Abschicken"); //Setzt die Buttons
00142         if (isset($this->role)) {
00143             $form->addRawCode("<tr><td class='message' colspan='2'>Sie nehmen zur Zeit die Rolle <strong>".Data::toHTML($this->role->getName($_SESSION["gender"]), false) ."</strong> ein.<br />Wenn Sie ".($file_upload ? "eine Datei hochladen, wird diese" : "einen Ordner oder Link erstellen, wird dieser") ." unter Ihrem Rollennamen ver&ouml;ffentlicht.</td></tr>");
00144         }
00145         // TrennZeile
00146         $form->addRawCode("<tr><td class='tableHead' colspan='2'>Ben&ouml;tigte Einstellungen</td></tr>"); // Fuegt eine Ueberschriftszeile ein
00147         // Wenn eine Datei hochgeladen werden soll
00148         if ($file_upload) {
00149             $form->addInput("hidden", "type", "", 1, "file");
00150             $form->addInput("hidden", "MAX_FILE_SIZE", "", 1, $MaxFileSize*1024*1024);
00151             
00152             // MultiUpload: Titel fuer jede einzelne Upload-Moeglichkeit
00153             $form->addRawCode("</table><div id='uploads'><table width='100%'><tr valign='top'>
00154             <td class='tableHead' colspan='2'><div style='text-align:center;'>Dateiinformationen f&uuml;r 1. Datei</div></td></tr>");
00155             
00156             $name = (!is_null($copyFile)) ? $copyFile->getName() : "";
00157             $form->addInput("text", "name[]", "Bitte geben Sie einen aussagekr&auml;ftigen Namen f&uuml;r die Datei ein:<br/><span class='text10'>(max. 40 Zeichen)</span>", 50, $name, 40);
00158             // Beschreibung fuer DateiName auswahlen wird konstruiert (mit erlaubter Endung und max Groesse)
00159             if ( !is_null( $copyFile ) ) {
00160                 $form->addInput("hidden", "copyFile", "", 1, $copyFile->getID());
00161                 $form->addRawCode("<tr><td>Datei kopieren</td><td>".$copyFile->getOrigFileName()."</td></tr>");
00162             } else {
00163                 $string = "Bitte w&auml;hlen Sie eine Datei aus:<br/>";
00164                 $string.= "<span class='text10'>";
00165                 if ($MaxFileSize) $string.= "max. ".$MaxFileSize." MB";
00166                 if ($MaxFileSize && $ForbiddenFileExtensions) $string.= ", ";
00167                 if ($ForbiddenFileExtensions) {
00168                     $string.= "keine ";
00169                     if (is_array($ForbiddenFileExtensions)) {
00170                         foreach($ForbiddenFileExtensions as $value) $string.= ".".$value." ";
00171                     } else $string.= ".".$ForbiddenFileExtensions." Dateien";
00172                 }
00173                 $string.= "</span>";
00174                 $form->addInput("file", "userfile[]", $string, 34);
00175                 
00176                 $form->addTextArea("comment[]", "Datei-Beschreibung (optional)", 40, 3, "");
00177                 
00178                 // MultiUpload: Link zu JavaScript-Funktion um zusaetzliches Upload-Formular einzublenden 
00179                 $form->addRawCode("</table></div><table width='100%'><tr valign='top'><td class='tableCell' colspan='2'>    
00180                 <p style='text-align:right;'>
00181                     <script>document.write(\"<a href='#' onclick='one_more_upload(); return false;'>Mehr Dateien Uploaden</a>\");</script>
00182                 </p>
00183                 </td></tr>");
00184             }
00185         } else { // Wenn Ordner oder Link erstellt werden soll
00186             $folderJS = (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) ? "document.getElementById('student_write').disabled=false;" : "") ."document.getElementById('userfileLink').style.display='none';"."document.getElementById('userfileFolder').style.display='inline';"."document.getElementById('nameLink').style.display='none';"."document.getElementById('nameFolder').style.display='inline';";
00187             $radio = array(array("Link hinzuf&uuml;gen", "link", "onclick=\"".(($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) ? "document.getElementById('student_write').disabled=true;" : "") ."document.getElementById('userfileLink').style.display='inline';"."document.getElementById('userfileFolder').style.display='none';"."document.getElementById('nameLink').style.display='inline';"."document.getElementById('nameFolder').style.display='none';"."document.getElementById('folder').disabled=false\""), array("Ordner erstellen", "folder", "onclick=\"$folderJS"."document.getElementById('folder').disabled=false\""));
00188             // Wenn Admin, Dozent oder Tutor, dann darf er auch einen Root Ordner erstellen
00189             if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) {
00190                 $radio[] = array("Hauptordner erstellen", "ROOT", "onclick=\"$folderJS"."document.getElementById('folder').disabled=true\"");
00191             }
00192             
00193             $form->addRadio("type", $radio, "Aktion w&auml;hlen:" . (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) ? "" : "<br/><span class='text10'>(Hauptordner sind Ordner auf oberster Ebene)</span>"), $actionChecked);
00194 
00195             if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) {
00196                 $form->addToNextTag("id='student_write'");
00197                 $form->addInput("checkbox", "student_write", "<strong>Nur f&uuml;r Ordner: </strong> Schreibberechtigung f&uuml;r Studenten");
00198             }
00199             
00200             $form->addInput("text", "userfile", "<span id='userfileLink'><strong>Link: </strong>Bitte geben Sie eine URL ein.<br/></span><span id='userfileFolder'><strong>Ordner: </strong>Bitte geben Sie einen Ordnernamen ein.<br/><span class='text10'>(OrdnerName =&gt; max. 20 Zeichen)</span></span>", 41, $linkUrl);
00201             $form->addInput("text", "name", "<span id='nameLink'><strong>Link: </strong>Bitte geben Sie einen Namen f&uuml;r den Link an.<br/></span><span id='nameFolder'><strong>Ordner: </strong>Bitte geben Sie einen erl&auml;uternden Namen (Tooltip) f&uuml;r den Ordner an.<br/></span><span class='text10'>(max. 40 Zeichen)</span>", 41, $linkName, 40);
00202         }
00203         
00204         // SQL Abfragen fuer Unterschiedliche UserGruppen => admin und Dozenten duerfen alle Dateien und Verz. sehen
00205         if (($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) || isset($_SESSION["assistent"])) $sql_add = "AND (userID='".$_SESSION['userid']."' OR (visible_type='1' AND start_time<'$time' AND end_time>'$time' AND student_write=1) )";
00206         elseif ($_SESSION['usergroup'] == SEKRETARIAT) $sql_add = "AND (userID='".$_SESSION['userid']."' OR visible_type<=2)";
00207         
00208         // Zeichnet die OrdnerListe in Baumstruktur
00209         $folderArr = NULL;
00210         $this->printSubFolder(0, $sql_add, $folderArr, 0, "");
00211         $selectedFolder = "";
00212         if (isset($_SERVER["HTTP_REFERER"])) {
00213             if (preg_match("/activeFolder=([0-9]+)/", $_SERVER["HTTP_REFERER"], $selectedFolder)) {
00214                 $selectedFolder = $selectedFolder[1];
00215             }
00216         }
00217         if (!is_array($folderArr)) {
00218             echo "<table>";
00219             if ($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) Output::errorMessage("Sorry, der Dozent oder Admin hat noch keine Ordner angelegt, deshalb k&ouml;nnen Sie derzeit keine Dateien hochladen.", 1);
00220             else Output::errorMessage("Sie m&uuml;ssen erst einen Hauptordner anlegen, bevor Studenten etwas hochladen k&ouml;nnen!", 1);
00221             echo "</table>";
00222             $form->addLine("&nbsp;", "Noch keine Ordner angelegt.<br/>Es ist nicht m&ouml;glich etwas zu Erstellen oder Hochzuladen.");
00223         } else {
00224             $form->addToNextTag("style='width:300;' id='folder'");
00225             $form->addSelect("folder", "Bitte geben Sie den Zielordner an".(($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) ? "" : "<br/><span class='text10'>(ist ohne Bedeutung, wenn Sie einen Hauptordner anlegen.)</span>"), $folderArr, count($folderArr) > 10 ? 10 : count($folderArr), false, $selectedFolder);
00226         }
00227         if (!$file_upload) {
00228             $description = (!is_null($copyFile)) ? $copyFile->getDescription() : "";
00229             $form->addTextArea("comment", "Datei-Beschreibung (optional)", 40, 3, $description);
00230         }
00231         $visibleArr = array(array("Alle", "1"), array("Dozenten und Tutoren", "2"), array("Dozenten", "3"));
00232         $form->addSelect("visible", "W&auml;hlen Sie hier die Benutzergruppe aus, die Ihren Eintrag sehen darf:", $visibleArr);
00233         $form->addButtons();
00234         if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) || (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) && $course > 0)) {
00235             // Ueberschriftszeile
00236             $form->addRawCode("<tr><td class='tableHead' colspan='2'>Optionale Einstellungen</td></tr>");
00237             // Wenn im Foyer dann Alle Anzeigen
00238             if ($course == 0) $names = $db->get_results("SELECT ID, Vorname, Nachname FROM user WHERE Usergroup > 1 AND Invisible = 0 AND ID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname");
00239             else $names = $db->get_results("SELECT ID, Vorname, Nachname, user_course.courseID FROM user, user_course WHERE user.ID=user_course.userID AND user_course.courseID='$course' AND Usergroup > 1 AND userID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname");
00240             // Erstellt UserListe fuer Spezielle Sichtbarkeit
00241             $COUNT = 0;
00242             if (is_array($names)) foreach($names as $name) {
00243                 $visibleListArr[$COUNT][0] = Data::toHTML($name->Nachname.", ".$name->Vorname, false);
00244                 $visibleListArr[$COUNT++][1] = $name->ID;
00245             }
00246             if (!empty($visibleListArr)) $form->addSelect("visibleList", "Hier k&ouml;nnen Sie zus&auml;tzliche Personen ausw&auml;hlen, die Ihren Eintrag sehen d&uuml;rfen:<br/>(F&uuml;r Mehrfachselektierung STRG-Taste beim Klicken gedr&uuml;ckt halten.)<br/><strong>(wird ignoriert, wenn als Benutzergruppe &quot;Alle&quot; ausgew&auml;hlt ist!)</strong>", $visibleListArr, 10, true);
00247         }
00248         if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) {
00249             $form->addMarker();
00250             // Email-Benachrichtigungsfunktion
00251             $form->addInput("checkbox", "email", "Benachrichtigung an alle <strong>Mitglieder</strong> per Email?", 0, 1);
00252             $form->addInput("checkbox", "teacherEMail", "Benachrichtigung an alle <strong>Dozenten</strong> per Email?", 0, 1);
00253             $form->addButtons();
00254             echo $form->getForm(0);
00255             // *************  kalender plugin **************************************
00256 
00257 ?>
00258 <tr>
00259     <td class='tableCell'>F&uuml;r welche Zeit sichtbar?<br/><span class='text10'>(wenn Sie nichts ausw&auml;hlen ist der Eintrag immer sichtbar)</span></td>
00260     <td class='tableCell'>Anzeigebeginn Datum/Zeit:<br/>
00261 <?php
00262             //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen
00263             if (isset($_POST['openDate_day'])) {
00264                 $calendar->setDate($_POST['openDate_day'], $_POST['openDate_month'], $_POST['openDate_year']);
00265                 $calendar->setTime($_POST['openDate_hour'], $_POST['openDate_minute']);
00266             }
00267             //die Datums Auswahlfelder ausgeben
00268             $calendar->printCalender("openDate", "dateExt");
00269             $calendar->printCalender("openDate", "time");
00270 ?>
00271     <br/><br/>Anzeigeende Datum/Zeit:<br/>
00272 <?php
00273             //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen
00274             if (isset($_POST['closeDate_day'])) {
00275                 $calendar->setDate($_POST['closeDate_day'], $_POST['closeDate_month'], $_POST['closeDate_year']);
00276                 $calendar->setTime($_POST['closeDate_hour'], $_POST['closeDate_minute']);
00277             }
00278             $calendar->printCalender("closeDate", "dateExt");
00279             $calendar->printCalender("closeDate", "time");
00280             echo "    </td>\n</tr>\n";
00281             // *************  kalender plugin **************************************
00282             echo $form->getForm(1);
00283         } else {
00284             echo $form->getForm();
00285         }
00286     }

Insert::uploadFile ( data  )  [private]

Laed die Datei mit der fileID $fileID hoch

Parameters:
array [$data] Array mit den Formular-Eingaben
Returns:
boolean Erfolgswert private

Definition at line 569 of file class.insert.inc.php.

References sendEmail().

Referenced by resolveForm().

00569                                            {
00570             global $settings;
00571             // Konstruktion des Uploadverzeichnis
00572             $uploaddir = PATH_TO_ROOT.$settings["upload_path"].'filemanager/courseID/'.$data['courseID'].'/';
00573             // Verzeichnis anlegen wenn noch nicht vorhanden
00574             if (!(is_dir($uploaddir))) Utilities::mkdir_r($uploaddir);
00575             $uploadSuccess = false;
00576             // Datei wird hochgeladen
00577             if (isset($data['tmpfileTmpName'])) {
00578                 $uploadSuccess = move_uploaded_file($data['tmpfileTmpName'], $uploaddir.$data['link']);
00579             } else if (isset($data['tmpPathToFile'])) {
00580                 $uploadSuccess = copy( $data['tmpPathToFile'], $uploaddir.$data['link'] );
00581             }
00582             if ( $uploadSuccess ) {
00583                 if ($data['tmpemail'] || $data['tmpteacherEMail']) {
00584                     if ($this->sendEmail($data['fileID'], ($data['tmpteacherEMail'] && !$data['tmpemail']))) Output::echoMessage("Benachrichtigungs-Mails versandt.", 1);
00585                     else Output::errorMessage("Benachrichtigungs-Mails konnten nicht versandt werden!", 1);
00586                 }
00587                 Output::echoMessage("Datei erfolgreich gesendet", 1);
00588                 return true;
00589             } else {
00590                 Output::errorMessage("Fehler beim Senden der Datei aufgetreten!", 1);
00591                 return false;
00592             }
00593         }


Member Data Documentation

Insert::$forbiddenFileExtensions [private]

Verbotene Dateiendungen private array

Definition at line 66 of file class.insert.inc.php.

Insert::$maxFileSize [private]

Die maximale Größe für hochgeladene Dateien. private integer

Definition at line 60 of file class.insert.inc.php.

Insert::$role = null [private]

Rolle des aktuellen Benutzers, falls eine eingenommen wird. private object

Definition at line 72 of file class.insert.inc.php.

Insert::$team = null [private]

Team des Benutzers private object

Definition at line 78 of file class.insert.inc.php.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations

Generated on Fri Oct 30 17:21:39 2009 for MSP Modul Ressourcen by  doxygen 1.6.1